[转载] 在 1Panel 下搭建 MyNodeQuery 实时监控 VPS

From: misaka.es
Author: misaka
原文链接:在 1Panel 下搭建 MyNodeQuery 实时监控 VPS


MyNodeQuery 是一款简洁好用的探针,支持 Telegram 节点离线通知、自定义 Ping 节点、还有网速、流量报表等功能。它的功能和易用性没有哪吒探针和 Server Status 做的好,项目也并未开源,但这个项目的网络监控做得很好,可以自定义 ping 的地址,方便实时查看国内三网到 VPS 的网络延迟和波动。

项目地址:https://hub.docker.com/r/jaydenlee2019/mynodequery

1Panel 是近两年新兴的一款 Web 管理面板,它基于 Docker,易于安装,可以方便直观并快捷的搭建网站环境和管理 Docker 项目。

项目地址:https://github.com/1Panel-dev/1Panel

安装 1Panel

Ubuntu:

1
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

Debian:

1
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh

安装成功后,控制台会打印面板访问信息,可通过浏览器访问 1Panel:

http://目标服务器 IP 地址:目标端口/安全入口

如果使用的是云服务器,请至安全组开放目标端口。

ssh 登录 1Panel 服务器后,执行 1pctl user-info 命令可获取安全入口(entrance)。

1Panel 下安装 MyNodeQuery

1Panel 安装好后进入后台,点击左侧菜单——主机——文件——根目录—— opt 进入,点击创建文件夹,新建 MyNodeQuery 文件夹。

进入刚刚创建的 MyNodeQuery 文件夹,点击创建文件,创建 docker-compose.ymlappsettings.json 两个文件。

打开 docker-compose.yml 文件添加如下内容并保存:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
version: '3.3'
services:
mynodequery:
container_name: mynodequery
ports:
- '5000:5000'
volumes:
- './appsettings.json:/app/appsettings.json'
image: 'jaydenlee2019/mynodequery:latest'

mynodequerydb:
image: 'docker.io/mysql:5.7' #使用的镜像
restart: always
container_name: mynodequery-mysql #容器名
command: mysqld --default-authentication-plugin=mysql_native_password
volumes:
- ./data:/var/lib/mysql #挂载目录,持久化存储
# ports:
# - '3306:3306'
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: "mynodequery" #设置root用户的密码
MYSQL_DATABASE: "mynodequery"
MYSQL_USER: "mynodequery"
MYSQL_PASSWOR: "mynodequery" #设置mysql用户的密码

打开 appsettings.json 文件添加如下内容并保存:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"MySql": {
"ConnectionString": ""
},
"AllowedHosts": "*",
"Installed": "false",
"ReadNodeIpHeaderKey": "X-Real-IP"
}

点击 左侧菜单——容器——编排——创建编排,在右侧的弹出界面中点击路径选择,路径选择刚刚创建的 docker-compose.yml

主菜单 > opt > MyNodeQuery > docker-compose.yml 确认,再点击右下角的确认按钮等待安装完成。

此时 MyNodeQuery 已经安装完成。

域名反向代理设置

如果你有一个域名,需要将域名指向探针面板,那么用 1Panel 也可以方便的设置反向代理。

首先,需要在你的域名服务商处,将域名(此处以 vps.12345.com 为例)指向安装 MyNodeQuery 的服务器 IP地址。

然后打开 1Panel 左侧的菜单——网站——创建网站,在右侧的弹出面板选择“反向代理”:

主域名: vps.12345.com
代号: vps.12345.com
代理地址: 选择 http,后面填写 127.0.0.1:5000

点击确认按钮,此时反向代理就已经新建完成,点击配置——HTTPS,可手动添加证书,或者在线申请免费 SSL 证书,证书设置好后,至此,反向代理设置完成。

初始化配置 MyNodeQuery

打开你的域名 https://vps.12345.com(如果未设置 SSL 证书,那就是打开 http://vps.12345.com

连接 mysql 数据库:

主机名:mynodequerydb
端口:3306
数据库名:mynodequery
用户 ID:root
密码:mynodequery

站点基本设置:

站点标题:随便填写
网站地址(URL):https://vps.12345.com
站点地址(URL):https://vps.12345.com
登陆密码:自行设置
确认密码:输入自行设置的密码

ping 节点设置(支持tcping):

以下为主要地区的三网 ip 地址(来自腾讯和百度CDN):

广州电信 14.215.182.217
广州联通 163.177.17.45
广州移动 111.45.3.7
上海电信 180.163.148.209
上海联通 140.207.62.232
上海移动 221.130.192.224
北京电信 220.181.111.153
北京联通 111.206.208.32
北京移动 112.34.112.45

至此,MyNodeQuery 服务端安装已全部完成。

补充

我们可能会发现,在某些系统下,在添加节点后,并在 VPS 上安装节点探针脚本时会出线安装失败的情况,这种情况我们需要修改一下默认的安装脚本,比较简单的解决方案是在 sh ./mynq-install.sh 前面加上 ba 即可。

例如

1
wget -q --no-check-certificate -O mynq-install.sh https://vps.12345.com/Script/Install/1C34CF16F5C54723A418AABBCCDDEEFF && sh ./mynq-install.sh

修改为

1
wget -q --no-check-certificate -O mynq-install.sh https://vps.12345.com/Script/Install/1C34CF16F5C54723A418AABBCCDDEEFF && bash ./mynq-install.sh

一步到位解决方案:

查看 mynodequery 的容器 ID

1
docker ps

假如 31de748b53f8 为 mynodequery 的容器 ID(每个人都不一样)

进入容器

1
docker exec -it 31de748b53f8 /bin/sh

输入

1
vi /app/wwwroot/js/site.js

按 i 键进入编辑模式,找到第 1131 行和 1195 行,在 sh 前面加上 ba 。修改好后,输入 :wq 保存。

最后输入 exit 退出容器并重启容器

1
docker restart 31de748b53f8

此时,默认的节点脚本已经变更为 bash ./mynq-install.sh

如果要卸载已安装在 VPS 上的探针,可以使用以下命令:

1
rm -rf /etc/mynodequery && (crontab -u mynodequery -l | grep -v "/etc/mynodequery/mynq-agent.sh") | crontab -u mynodequery - && userdel mynodequery

额外

类似的探针服务还有哪吒探针,详见哪吒官方教程:https://nezha.wiki/guide/dashboard.html